8 puzzle problem using dfs